using System;
using System.Collections.Generic;

namespace Managistics.Model
{
    [Serializable()]
    public class PurchaseOrder : Entity<string>
    {
        private Employee _employee;
        private Supplier _supplier;
        private DateTime _orderdateNn;
        private DateTime? _requestdateNn;
        private DateTime _shippingDateNn;
        private string _shipAddressNn;
        private bool _statusNn;
        private string _noteNn;
        private DateTime? _completeDatePo;
        private short? _typeVat;
        private string _payCondition;
        private short _numInput;
        private short _numReturn;
        private float _discount;
        public PurchaseOrder() {
            PurchaseOrderDetail = new List<PurchaseOrderDetail>();
        }
        public virtual string Orderid {
            get {
                return this._id;
            }
            set {
                this._id = value;
            }
        }
        public virtual Employee Employee {
            get {
                return this._employee;
            }
            set {
                this._employee = value;
            }
        }
        public virtual Supplier Supplier {
            get {
                return this._supplier;
            }
            set {
                this._supplier = value;
            }
        }
        public virtual DateTime Orderdate {
            get {
                return this._orderdateNn;
            }
            set {
                this._orderdateNn = value;
            }
        }
        public virtual DateTime? Requestdate {
            get {
                return this._requestdateNn;
            }
            set {
                this._requestdateNn = value;
            }
        }
        public virtual DateTime ShippingDate {
            get {
                return this._shippingDateNn;
            }
            set {
                this._shippingDateNn = value;
            }
        }
        public virtual string ShipAddress {
            get {
                return this._shipAddressNn;
            }
            set {
                this._shipAddressNn = value;
            }
        }
        public virtual bool Status {
            get {
                return this._statusNn;
            }
            set {
                this._statusNn = value;
            }
        }
        public virtual string Note {
            get {
                return this._noteNn;
            }
            set {
                this._noteNn = value;
            }
        }
        public virtual DateTime? CompleteDate {
            get {
                return this._completeDatePo;
            }
            set {
                this._completeDatePo = value;
            }
        }
        public virtual short? TypeVat {
            get {
                return this._typeVat;
            }
            set {
                this._typeVat = value;
            }
        }
        public virtual string PayCondition {
            get {
                return this._payCondition;
            }
            set {
                this._payCondition = value;
            }
        }
        public virtual short NumInput {
            get {
                return this._numInput;
            }
            set {
                this._numInput = value;
            }
        }
        public virtual short NumReturn {
            get {
                return this._numReturn;
            }
            set {
                this._numReturn = value;
            }
        }
        public virtual float Discount {
            get {
                return this._discount;
            }
            set {
                this._discount = value;
            }
        }
        public virtual IList<PurchaseOrderDetail> PurchaseOrderDetail { get; set; }
    }

}
